The present invention relates to the field of mass storage devices. More particularly, this invention relates to a method of automatically maximizing throughput in a disc drive.
One key component of any computer system is a device to store data. Computer systems have many different places where data can be stored. One common place for storing massive amounts of data in a computer system is on a disc drive. The most basic parts of a disc drive are an information storage disc that is rotated, an actuator that moves a transducer head to various locations over the disc, and electrical circuitry that is used to write and read data to and from the disc. The disc drive also includes circuitry for encoding data so that it can be successfully retrieved and written to the disc surface. A microprocessor controls most of the operations of the disc drive as well as passing the data back to the requesting computer and taking data from a requesting computer for storing to the disc.
The transducer head is typically placed on a small ceramic block, also referred to as a slider, that is aerodynamically designed so that it flies over the disc. The slider is passed over the disc in a transducing relationship with the disc. Most sliders have an air-bearing surface (xe2x80x9cABSxe2x80x9d) which includes rails and a cavity between the rails. When the disc rotates, air is dragged between the rails and the disc surface causing pressure, which forces the head away from the disc. At the same time, the air rushing past the cavity or depression in the air bearing surface produces a negative pressure area. The negative pressure or suction counteracts the pressure produced at the rails. The slider is also attached to a load spring which produces a force on the slider directed toward the disc surface. The various forces equilibrate so the slider flies over the surface of the disc at a particular desired fly height. The fly height is the distance between the disc surface and the transducing head, which is typically the thickness of the air lubrication film. This film eliminates the friction and resulting wear that would occur if the transducing head and disc were in mechanical contact during disc rotation. In some disc drives, the slider passes through a layer of lubricant rather than flying over the surface of the disc.
Information representative of data is stored on the surface of the storage disc. Disc drive systems read and write information stored on tracks on storage discs. Transducers, in the form of read/write heads attached to the sliders, located on both sides of the storage disc, read and write information on the storage discs when the transducers are accurately positioned over one of the designated tracks on the surface of the storage disc. The transducer is also said to be moved to a target track. As the storage disc spins and the read/write head is accurately positioned above a target track, the read/write head can store data onto a track by writing information representative of data onto the storage disc. Similarly, reading data on a storage disc is accomplished by positioning the read/write head above a target track and reading the stored material on the storage disc. To write on or read from different tracks, the read/write head is moved radially across the tracks to a selected target track. The data is divided or grouped together on the tracks. In some disc drives, the tracks are a multiplicity of concentric circular tracks. In other disc drives, a continuous spiral is one track on one side of disc drive. Servo feedback information is used to accurately locate the transducer head. The actuator assembly is moved to the required position and held very accurately during a read or write operation using the servo information.
The actuator is rotatably attached to a shaft via a bearing cartridge which generally includes one or more sets of ball bearings. The shaft is attached to the base and may be attached to the top cover of the disc drive. A yoke is attached to the actuator. The voice coil is attached to the yoke at one end of the rotary actuator. The voice coil is part of a voice coil motor which is used to rotate the actuator and the attached transducer or transducers. A permanent magnet is attached to the base and cover of the disc drive. The voice coil motor which drives the rotary actuator comprises the voice coil and the permanent magnet. The voice coil is attached to the rotary actuator and the permanent magnet is fixed on the base. A yoke is generally used to attach the permanent magnet to the base and to direct the flux of the permanent magnet. Since the voice coil sandwiched between the magnet and yoke assembly is subjected to magnetic fields, electricity can be applied to the voice coil to drive it so as to position the transducers at a target track.
Quick and precise positioning requires the reduction of the vibration of the magnetic disc apparatus caused by the driving reaction force to the voice coil motor. What is needed is a disc drive which has is less susceptible to the reaction forces. This will improve settling characteristics after a seek from a first track on the disc to a target track on the disc and will improve track following operations of the disc drive. In other words, there is a need for a disc drive that has less relative motion between the actuator assembly and the base while under any type of servo control that requires corrections to be implemented with the voice coil motor. There is also a need for a static solution so that the resulting disc drive is more reliable over the life of the drive. Also needed is a device that can be assembled using current assembly techniques.
One constant goal associated with disc drives is to decrease or lessen the access time to data. Increasing the speed at which data can be retrieved is very desirable in a disc drive. The decrease in access time increases the speed at which a computer system can perform operations on data. When a computer is commanded to perform an operation on data or information that needs to be retrieved, the time necessary to retrieve the data from the disc is generally the bottleneck in the operation. When data is accessed more quickly, more transactions can generally be handled by a computer in a particular unit of time.
Most of the methods for controlling access time include referring to a velocity profile. A velocity profile is a pre-programmed equation or table which lists a desired velocity verses the stopping distance remaining until reaching the target track. In other words, a velocity profile provides the velocity the transducer head should have at varying distances from the destination or target track and, at each of a succession of tracks terminating with the destination or target track. Generally, the profile velocity value is the highest possible value of velocity the actuator can have at a particular remaining distance to allow the actuator to be decelerated to a stop upon reaching the destination or target track. Of course, there may be factors, such as power savings, that may steer designers away from following the highest possible velocity.
The velocity profile is shaped with respect to the number of tracks remaining in a seek to cause the transducer head to initially accelerate toward the destination or target track and subsequently decelerate to the destination or target track. In long seeks, these stages of the seek may be separated by a stage in which the transducer head traverses a series of tracks at a maximum speed that is selected on the basis of any of a number of criteria used by the manufacturer of the disc drive. For example, the maximum speed may be chosen to be the maximum speed the transducer head can attain with the power supply that is used to operate the servo system. A control signal is provided to the power amplifier that is directly proportional to the difference between the profile velocity and the actual velocity of the transducer head.
A typical seek is accomplished using closed loop control. The distance left to go to the destination or target track is determined and then the corresponding velocity from the velocity profile is selected. The difference between the actual actuator velocity and profile actuator velocity is provided to the servo controller. This value is then multiplied by a gain to give a control current output to the voice coil.
When the profile velocity is larger than the actual velocity, the result of subtracting actual actuator velocity from the selected velocity obtained from the velocity profile is positive, and the actuator is accelerated. When the profile velocity is less than actual velocity, the result of subtracting actual actuator velocity from the selected velocity from the velocity profile is negative, and the actuator is decelerated. The gain is chosen in the closed loop control method so that it is as high as possible yet still within the limits of stability and such that good conformity to the velocity profile is achieved.
The use of a velocity profile that can be developed with respect to any selected servo system operating criteria can be used to minimize the time required for the seek to occur and still reach the destination track with a speed that is neither too large nor too small to effectuate a rapid settling of the transducer head on the destination track at the end of the seek. Specifically, since the control signal is proportional to the difference between the profile velocity and the actual velocity, the transducer head can be caused to rapidly accelerate at the beginning of the seek by providing a profile that calls for large velocities at the beginning of the seek and then rapidly tapering the profile to zero as the destination track is reached.
The amount of deceleration that can be applied to the actuator is a function of many variables including voice coil resistance, file torque constant and power supply voltage. These variables are generally not known for each specific file and as a result, the velocity profile is designed using worst case values to assure that there will always be adequate deceleration capability to stop the actuator upon reaching the target track.
Due to manufacturing tolerances of all the parts that are assembled to form an actuator, it turns out that each transducer head on each arm has a different seek time for a given length of seek. Seek time is the time it takes for a transducer head to go radially from a first tract to target tract. For example, different load beams and flexures have different settling times. Also seek times from a single disc drive can become more or less inconsistent as external conditions such as temperature and vibration change during operation of the disc drive. In order to perform a seek, it is essential that the disc drive controller be able to accurately predict the amount of time the disc takes during a seek to go circumferentially from a first rotational position to a target rotational position. This time is generally referred to as phase difference time. A queue sort algorithm generally determines if this phase difference time is long enough to complete the seek to go from the first track to the target track. If the disc drive controller predicts that the seek can be completed within the phase difference time, and the seek actually takes longer than the phase difference time to complete the seek, then a second revolution of the disc is required to complete the seek. This is referred to as a missed revolution, and this missed revolution can increase the seek time by about 7 to 10 milliseconds, depending on the rotational speed of the disc. The current methods resolve the problem of predicting seek times by maintaining an array of average seek times for each seek length. When a seek is completed, the servo controller returns the actual seek time it took for the seek. The disc drive controller takes this seek time and applies it to the running average of seek. Since not all seeks of a length take the same exact amount of time, a seek adjustment value is added to the seek time to make sure that the seek is not underestimated. This seek adjustment is based on the worst case conditions so that adequate margin is available for both acceleration and deceleration for a given velocity profile. As a result, all of the disc drives operate under worst case conditions at less than an optimal level. Presently, the seek adjustments generally range from about 150 to 300 microseconds.
What is needed is a system that minimizes or reduces seek times. Also needed is a method and apparatus that allows seek times to be optimized and reduced rather than the seek time being associated with the worst case.
A disc drive includes a base and a disc rotatably attached to the base. The disc drive also includes an actuator assembly rotatably attached to said base and a device for moving the actuator assembly. The actuator assembly includes a transducer head in a transducing relationship with respect to the disc. The disc drive includes a disc drive controller for controlling movement of the actuator during track follow and track seek operations; The disc drive controller has an analyzer to compute a phase difference time when a command is generated to complete a seek. The disc drive controller has a servo controller to control movement of actuator and to monitor the actual seek time to complete the seek. The disc drive controller also has a comparator, coupled to the servo controller and the analyzer to compare the computed phase difference time to the actual seek time, and to issue a command signal when the actual seek time is greater than the computed phase difference time to indicate a missed revolution by the transducer head. The disc drive controller also includes a counter to monitor the number of missed revolutions by the transducer head, upon receiving the command signal from the comparator.
When a seek is performed, the analyzer computes the phase difference time (it is the time the disc takes during a seek to go circumferentially from a first rotational position to a target rotational position), then the servo controller monitors the actual seek time (it is the actual time it takes for the transducer head to go radially from a first track to the target track). Then the comparator compares the computed phase difference time with the actual seek time. If the actual seek time is greater than the phase difference time, then the comparator issues a command signal, indicating a missed revolution by the transducer head. A counter coupled to the comparator monitors the number of missed revolutions upon receiving the command signal from the comparator for a predetermined number of seek operations. At the end of the predetermined number of seek operations, the comparator compares the number of missed revolutions to a predetermined threshold value. If the number of missed revolutions exceeds the predetermined threshold value, then the controller increases the phase difference time by a first predetermined seek adjustment time, and if the number of missed revolutions is equal to zero, then the controller decreases the phase difference time by a second predetermined seek adjustment time. In one embodiment, the controller includes a memory to store the number of missed revolutions. Also disclosed, in another embodiment, is a method of choosing a command to seek based on using a rotational sorting algorithm. In one embodiment the rotational sorting algorithm uses the computed phase difference and seek times of all the seek commands waiting to be executed by the disc drive to choose a next seek command to seek.
Advantageously, the seek time reduction procedure set forth above and the apparatus for implementing the automatic method for reducing the seek times allow for faster seeks and increased throughput in a disc drive. The seek time reduction procedure can be incorporated in microcode and used to control the servo circuitry to implement the invention. The end result will be a reduction in access times to data, and increased throughput of input/output""s per second in a disc drive.